6.2.6 镜像命名和标签

只需要给出镜像的名字和标签,就能在官方仓库中定位一个镜像(采用“:”分隔)。从官方仓库拉取镜像时, docker image pull 命令的格式如下。

docker image pull <repository>:<tag>

在之前的Linux示例中,通过下面的两条命令完成 AlpineUbuntu 镜像的拉取。

docker image pull alpine:latest
docker image pull ubuntu:latest

这两条命令从alpine和ubuntu仓库拉取了标有“latest”标签的镜像。

下面的示例展示了如何从官方仓库拉取不同的镜像。

$ docker image pull mongo:3.3.11
//该命令会从官方Mongo库拉取标签为3.3.11的镜像
$ docker image pull redis:latest
//该命令会从官方Redis库拉取标签为latest的镜像
$ docker image pull alpine
//该命令会从官方Alpine库拉取标签为latest的镜像

关于上述命令,需要注意以下几点。

首先,如果没有在仓库名称后指定具体的镜像标签,则Docker会假设用户希望拉取标签为 latest 的镜像。

其次,标签为 latest 的镜像没有什么特殊魔力!标有 latest 标签的镜像不保证这是仓库中最新的镜像!例如, Alpine 仓库中最新的镜像通常标签是 edge 。通常来讲,使用 latest 标签时需要谨慎!

从非官方仓库拉取镜像也是类似的,读者只需要在仓库名称面前加上Docker Hub的用户名或者组织名称。下面的示例展示了如何从 tu-demo 仓库中拉取 v2 这个镜像,其中镜像的拥有者是Docker Hub账户 nigelpoulton ,一个不应该被信任的账户。

$ docker image pull nigelpoulton/tu-demo:v2
//该命令会从以我自己的Docker Hub账号为命名空间的tu-demo库中下载标签为v2的镜像

在之前的Windows示例中,使用下面的两条命令拉取了PowerShell和.NET镜像。

> docker image pull microsoft/powershell:nanoserver
> docker image pull microsoft/dotnet:latest

第一条命令从 microsoft/powershell 仓库中拉取了标签为 nanoserver 的镜像,第二条命令从 microsoft/dotnet 仓库中拉取了标签为 latest 的镜像。

如果读者希望从第三方镜像仓库服务获取镜像(非Docker Hub),则需要在镜像仓库名称前加上第三方镜像仓库服务的DNS名称。假设上面的示例中的镜像位于Google容器镜像仓库服务(GCR)中,则需要在仓库名称前面加上 gcr.io ,如 docker pull gcr.io/nigelpoulton/tu-demo:v2 (这个仓库和镜像并不存在)。

读者可能需要拥有第三方镜像仓库服务的账户,并在拉取镜像前完成登录。

results matching ""

    No results matching ""